During operation, database systems generate backup files which may be used to recover from database crashes. The backup files include data backups, which consist of all the data of the database system at a given point in time, and log backups, which describe changes made to the data during a particular time period. In order to perform a recovery, a database administrator specifies a point in time to which the database should be recovered. The point in time may be specified by providing a timestamp or a log position and volume number. Based on the specified point in time, a data backup and a set of log backups are selected. Recovery then consists of restoring the database to the state of the data backup, followed by replaying the log backups in sequence.
Proper selection of the log backups may be difficult if a particular database backup was used for a prior recovery. Specifically, the log backups used for the prior recovery are members of a first log sequence which may include even more recent log backups, while log backups generated after the prior recovery are members of a second independent log sequence.
Moreover, some database systems associate database services with particular volumes, and generate data backups and log backups for each volume independently. Accordingly, a data backup and log backups must be selected for each volume, in a manner that results in a consistent overall database state. This problem is exacerbated by the capability of some database systems to remove and add volumes during operation.